<?php namespace app\admin\controller;

class Category extends Common {
	protected $db;
	public function __init ()
	{
		$this->db = new \system\model\Category();
	}

	//动作
    public function index(){
//		echo u('admin/category/del');
    //此处书写代码...
		$data = Db::table('category')->get();
		//手册中【数组增强】--【树状】
		$data = Arr::tree($data, 'cname');
		//p($data);
		//分配变量
		View::with('data',$data);
		return view();
    }
    /**
	 * 添加顶级
	 */
    public function store()
	{
		if(IS_POST)
		{
			if($this->db->store()){
				message('顶级分类添加成功',u('index'),'success');
			}
			message('添加失败','back','error');

		}
		return view();
	}
	/**
	 * 添加子集
	 */
	public function addSon()
	{
		if(IS_POST)
		{
			if($this->db->store()){
				message('子集分类添加成功',u('index'),'success');
			}
			message('添加失败','back','error');

		}
		$cid = q('get.cid');//q用来接收get参数，post参数
		//处理所属分类数据
		$cateData = Db::table('category')->find($cid);
		//p($cateData);
		View::with('cateData',$cateData);//分配变量
		return view();
	}
	/**
	 * 编辑分类
	 */
	public function edit()
	{
		if(IS_POST)
		{
			if($this->db->edit()){
				message('分类编辑成功',u('index'),'success');
			}
			message('编辑失败','back','error');
		}
		//1.获取旧数据
		$cid = q('get.cid');
		$oldData = Db::table('category')->find($cid);
		//p($oldData);
		View::with('oldData',$oldData);
		//2.处理所属分类数据，【不能包含自己以及自己的子集】
		$cateData = $this->db->getCateData($cid);
		//p($cateData);
		View::with('cateData',$cateData);
		return view();
	}
	/**
	 * 删除
	 */
	public function del()
	{
		$cid = q('get.cid');
		//p($cid);
		//执行删除
		//1.首先获取当前要删除数据的pid
		//pluck在手册中【数据库-->查询构造器】
		$pid = Db::table('category')->where('cid',$cid)->pluck('pid');
		//p($cid);
		//2.将儿子的pid进行修改，修改为当前要删除数据的pid
		$this->db->where('pid',$cid)->update(['pid'=>$pid]);
		//3.执行当前数据的删除
		$res = \system\model\Category::delete($cid);
		if($res){
			message('分类删除成功',u('index'),'success');
		}
		message('删除失败','back','error');

	}
}
